package com.utils.json;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.google.gson.JsonArray;
import com.google.gson.JsonParser;
import lombok.extern.slf4j.Slf4j;

/**
 * 字符串转jsonArray
 *
 * @author: zhaozongyi
 * @date: 2022-10-11 14:47
 */
@Slf4j
public class JSONTest {

    public static void main(String[] args) {
//        String json = "[{\"2\":\"20\"},{\"1\":\"10\"},{\"4\":\"40\"},{\"3\":\"30\"},{\"5\":\"50\"}]";
        String json = "[{\"26.663451\":\"106.611489\",\"26.663144\":\"106.620845\",\"26.657084\":\"106.623935\",\"26.654745\":\"106.609472\"}]";
//        fastJson(json);
//        netJson(json);
        gJson(json);
    }

    /**
     * 顺序会变化
     * @param json
     */
    public static void fastJson(String json) {
        JSONArray jsonArray = JSONArray.parseArray(json);
        System.out.println(jsonArray);
        log.info("array:{}", jsonArray);
        // 优化
//        JSONArray newJsonArray = (JSONArray)JSONObject.parse(json, Feature.OrderedField);
//        JSONObject js = new JSONObject(true);
    }

    /**
     * 顺序不会变化
     * @param json
     */
    public static void netJson(String json) {
        net.sf.json.JSONArray jsonArray = net.sf.json.JSONArray.fromObject(json);
        System.out.println(jsonArray);
        log.info("array:{}", jsonArray);
    }

    /**
     * 顺序不会变化
     * @param json
     */
    public static void gJson(String json) {
        JsonParser parser = new JsonParser();
        JsonArray jsonArray = parser.parse(json).getAsJsonArray();
        System.out.println(jsonArray);
        log.info("array:{}", jsonArray);
    }

}
